`:top
`!JavaFX`! est un `F33f`_`[framework`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Framework]`_`f et une `F33f`_`[bibliothèque d'interface utilisateur`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Bibliothèque_graphique]`_`f issue du projet `F33f`_`[OpenJFX`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=OpenJFX]`_`f, qui permet aux développeurs `F33f`_`[Java`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Java_(langage)]`_`f de créer une `F33f`_`[interface graphique`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Interface_graphique]`_`f pour des applications de bureau, des `F33f`_`[applications internet riches`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Rich_desktop_application]`_`f et des applications `F33f`_`[smartphones`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Smartphone]`_`f et tablettes tactiles.
Créé à l'origine par `F33f`_`[Sun MicroSystems`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Sun_Microsystems]`_`f, puis développé par `F33f`_`[Oracle`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Oracle_(entreprise)]`_`f après son rachat et ce, jusqu'à la version 11 du `F33f`_`[JDK`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Java_Development_Kit]`_`f, c'est depuis lors à la communauté OpenJFX que revient la poursuite de son développement`:cite-ref-1[`F5bf`_`[1`#cite-note-1]`_`f].
Cette bibliothèque a été conçue pour remplacer `F33f`_`[Swing`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Swing_(Java)]`_`f et `F33f`_`[AWT`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Abstract_Window_Toolkit]`_`f, qui ont été développés à partir de la fin des années 90, pour pallier les défauts de ces derniers et fournir de nouvelles fonctionnalités (dont le support des écrans tactiles).
Le cycle de sortie d'une nouvelle version de JavaFX correspond à celui de Java, soit tous les 6 mois.
>>Contents
• `F0af`_`[Historique`#historique]`_`f
• `F0af`_`[Composants`#composants]`_`f
• `F0af`_`[Versions`#versions]`_`f
• `F0af`_`[Exemple`#exemple]`_`f
• `F0af`_`[Bibliothèques`#biblioth-ques]`_`f
• `F0af`_`[Scene Builder: l'outil de conception d'interfaces`#scene-builder-l-outil-de-conception-d-interfaces]`_`f
• `F0af`_`[Annexes`#annexes]`_`f
• `F0af`_`[Articles connexes`#articles-connexes]`_`f
• `F0af`_`[Liens externes`#liens-externes]`_`f
• `F0af`_`[Références`#r-f-rences]`_`f
-─
>>Historique
À ses débuts, les développeurs devaient utiliser le langage de script `F33f`_`[JavaFX Script`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=JavaFX_Script]`_`f pour pouvoir décrire une interface utilisateur et la bibliothèque ne permettait de concevoir que des applications internet riches.
Depuis la version 2.0, il s'agit d'une véritable `F33f`_`[API`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Interface_de_programmation]`_`f qui est proposé sous la forme d'une bibliothèque tierce et qui plus est, devient `F33f`_`[open source`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Open_source]`_`f`:cite-ref-0-2-0[`F5bf`_`[2`#cite-note-0-2]`_`f].
Avec l'apparition de la version 8 de Java (en mars 2014), JavaFX devient la bibliothèque de création d'interface graphique officielle du langage Java, le développement de son prédécesseur Swing (avec AWT) étant abandonné, excepté pour les corrections de bogues.
Depuis la version 11 de Java, le projet est dissocié du JDK, pour suivre son propre processus de développement. Toutefois, le numéro de version de JavaFX concorde avec celui du JDK pour indiquer sa compatibilité (car toute application JavaFX est basée sur le JDK).
>>Composants
JavaFX est composé des 7 modules suivants:
• `!javafx.base`!: Définit l'API de base
• `!javafx.controls`!: Définit la majorité des composants graphiques de l'API
• `!javafx.fxml`!: Définit l'API relative au langage `F33f`_`[FXML`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=FXML]`_`f qui permet de décrire une interface utilisateur d'une manière alternative à l'écriture de lignes de code
• `!javafx.graphics`!: Définit l'API relative aux conteneurs, animations, effets visuels, formes 2D et 3D, images, impression, fenêtres, événements, robots, au support du CSS et à l'application
• `!javafx.media`!: Définit l'API dédié à la lecture de contenu audio et vidéo
• `!javafx.swing`!: Définit l'API qui fournit le support d’`F33f`_`[interopérabilité`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Interopérabilité]`_`f entre JavaFX et `F33f`_`[Swing`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Swing_(Java)]`_`f
• `!javafx.web`!: Définit l'API dédié à l'affichage de contenu web (notamment un `F33f`_`[éditeur HTML`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Éditeur_HTML]`_`f et un moteur de rendu de pages web basé sur `F33f`_`[WebKit`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=WebKit]`_`f)
>>Versions
`t
| Numéro de version | Date de sortie | Note |
|---|---|---|
| 1.0 | 4 décembre 2008 | JavaFX Script ; le code source est fermé |
| 1.1 | 12 février 2009 | |
| 1.2 | 2 juin 2009 | |
| 1.3 | 22 avril 2010 | Intégration des diagrammes ; support du CSS |
| 1.3.1 | 21 août 2010 | |
| 2.0 | 10 octobre 2011 | Il s'agit désormais d'une API et non d'un langage de script ; FXML |
| 2.1 | 27 avril 2012 | Support de MacOS |
| 2.2 | 14 août 2012 | Support de Linux ; nouveaux composants graphiques |
| 8.0 | 18 mars 2014 | Intégration de JavaFX au JDK 8 |
| 9.0 | 21 septembre 2017 | Modularisation de JavaFX |
| 10.0 | 20 mars 2018 | |
| 11.0 | 18 septembre 2018 | Devient un module à part entière du JDK |
| 12.0 | 11 mars 2019 | |
| 13.0 | 10 septembre 2019 | |
| 14.0 | 13 mars 2020 | |
| 15.0 | septembre 2020 | |
| 16.0 | mars 2021 | |
| 17.0 | septembre 2021 | Soutien à long terme jusqu'en septembre 2026 |
| 18.0 | mars 2022 | |
| 19.0 | septembre 2022 | |
| 20.0 | mars 2023 | |
| 21.0 | septembre 2023 | Soutien à long terme |
`t
>>Exemple
Ci-dessous, un exemple de programme affichant le message "`F33f`_`[Hello World`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Hello_world]`_`f":
`B100`F9d9import javafx.application.Application;`f`b
`B100`F9d9import javafx.scene.control.Label;`f`b
`B100`F9d9import javafx.stage.Stage;`f`b
`B100`F9d9import javafx.application.Platform;`f`b
`B100`F9d9import javafx.scene.Scene;`f`b
`B100`F9d9`f`b
`B100`F9d9public class Main extends Application {`f`b
`B100`F9d9`f`b
`B100`F9d9 // Point d'entrée du programme`f`b
`B100`F9d9 public static void main(String[] args) {`f`b
`B100`F9d9 launch(args); // Appel du point d'entrée de l'application JavaFx (voir ci-dessous)`f`b
`B100`F9d9 }`f`b
`B100`F9d9`f`b
`B100`F9d9 // Point d'entrée de l'application JavaFX`f`b
`B100`F9d9 @Override`f`b
`B100`F9d9 public void start(Stage primaryStage) {`f`b
`B100`F9d9`f`b
`B100`F9d9 // Définition du titre de la fenêtre de l'application`f`b
`B100`F9d9 primaryStage.setTitle("Titre de la fenêtre");`f`b
`B100`F9d9`f`b
`B100`F9d9 // Appel d'une méthode permettant une fermeture propre de l'application`f`b
`B100`F9d9 primaryStage.setOnCloseRequest(e -> Platform.exit());`f`b
`B100`F9d9`f`b
`B100`F9d9 // Création de la scène (avec des dimensions correspondant à une résolution HD), composé uniquement d'une étiquette affichant du texte`f`b
`B100`F9d9 primaryStage.setScene(new Scene(new Label("Hello world !"), 1280, 720));`f`b
`B100`F9d9`f`b
`B100`F9d9 // Affichage de la fenêtre`f`b
`B100`F9d9 primaryStage.show();`f`b
`B100`F9d9 }`f`b
`B100`F9d9}`f`b
>>Bibliothèques
Des projets de bibliothèques viennent compléter les fonctionnalités de JavaFX. Parmi eux, on peut citer les projets suivants:
• ControlsFX: ensemble de composants graphiques
• JFXtras: ensemble de composants graphiques
• JFoenix: fournit une interface dans le style `F33f`_`[Material design`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Material_design]`_`f
• CalendarFX: permet de créer des calendriers
• FormsFX: permet de faciliter la création de formulaires
• TilesFX: ensemble de widgets pour le développement d'un tableau de bord
>>Scene Builder: l'outil de conception d'interfaces
`!Scene Builder`! est un `F33f`_`[outil interactif de conception d'interface graphique`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Constructeur_d'interface_graphique]`_`f pour JavaFX. Il permet de créer des interfaces utilisateurs rapidement et sans avoir besoin de `F33f`_`[coder`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Programmation_informatique]`_`f: il en résulte des fichiers au format `F33f`_`[FXML`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=FXML]`_`f qui sont ensuite chargés par le programme pour afficher une interface graphique à ses utilisateurs.
Développé initialement par Oracle et sous le nom JavaFX Scene Builder`:cite-ref-5[`F5bf`_`[5`#cite-note-5]`_`f], son code source a été publié en `F33f`_`[open source`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Open_source]`_`f à partir de sa version 2.0`:cite-ref-6[`F5bf`_`[6`#cite-note-6]`_`f].
Depuis, le logiciel est principalement développé et soutenu par la société Gluon`:cite-ref-7[`F5bf`_`[7`#cite-note-7]`_`f].
>>Annexes
>>>Articles connexes
• `F33f`_`[Java (langage)`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Java_(langage)]`_`f
• `F33f`_`[Plate-forme Java`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Plate-forme_Java]`_`f
• `F33f`_`[Machine virtuelle Java`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Machine_virtuelle_Java]`_`f
• `F33f`_`[Swing`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Swing_(Java)]`_`f
• `F33f`_`[Liste de bibliothèques d'interface utilisateur`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Liste_de_bibliothèques_d'interface_utilisateur]`_`f
• `F33f`_`[Scene Builder`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Scene_Builder]`_`f
>>>Liens externes
• (en) Wiki du projet OpenJFX
• (en) Page de téléchargement de SceneBuilder
• (en) Site internet de Scene Builder
>>>Références
`:cite-note-1`!1.`! `F0af`_`[↑`#cite-ref-1]`_`f `:2018`a« JDK 11 update: JavaFX will be decoupled from the JDK », sur jaxenter.com, `*JAXenter`*, 8 mars 2018 (consulté le 19 mars 2019)
`:cite-note-0-2`!2.`! `:2017`a(en) « Repositories and Releases », sur OpenJDK Wiki, 22 décembre 2017 (consulté le 19 mars 2019)
`:cite-note-3`!1.`! `:2017`a(en) « What is JavaFX ? », sur thoughtco.com, `*ThoughtCo.`*, 17 mars 2017 (consulté le 19 mars 2019)
`:cite-note-4`!2.`! `:2014`a(en) « JavaFX 8: New and Noteworthy », sur SlidePlayer, septembre 2014 (consulté le 25 mars 2019)
`:cite-note-5`!5.`! `F0af`_`[↑`#cite-ref-5]`_`f (en) « JavaFX Scene Builder Information », sur oracle.com (consulté le 25 mars 2019)
`:cite-note-6`!6.`! `F0af`_`[↑`#cite-ref-6]`_`f `:2013`a« JavaFX Scene Builder devient open source, dans le cadre du projet OpenJFX », sur developpez.com, 5 décembre 2013 (consulté le 25 mars 2019)
`:cite-note-7`!7.`! `F0af`_`[↑`#cite-ref-7]`_`f (en) « Scene Builder », sur gluonhq.com (consulté le 25 mars 2019)
• Portail de l’informatique
• Portail de la programmation informatique
`c`F0af`_`[↑ Back to top`#top]`_`f`a